package com.abc.deviceservice.normalreader;

//统一(磁条卡 接触式 IC 卡 非接触式 IC 卡 身份证)的读卡器
public interface INormalCardReader {

    /**
     * 标准卡读取
     * @param readMode 卡类型
     *                 1：磁条卡
     *                 2：接触 IC 卡
     *                 3：非接 IC 卡
     *                 4：自动
     * @param listener 读卡回调，回调详细说明如下：
     *                 读卡结果数据 JSON格式toString
     *                 cardNo 卡号
     *                 username 姓名
     *                 credentialType 证件类型
     *                 documentNumber 证件号码
     *                 accountBalance 账户余额（一般为电子现金账户）
     *                 balanceCap 余额上限
     *                 validity 有效期
     *                 serialNumber 卡序列号
     *                 track1Data 一磁道信息
     *                 track2Data 二磁道信息
     *                 track3Data 三磁道信息
     * @param timeout 超时时间，单位:毫秒
     * @param prompt true:有提示音和动画 false: 无提示音无动画
     */
    void normalCardReader(int readMode, NormalCardReaderListener listener, int timeout, boolean prompt);

    /**
     * 身份证卡读取
     * @param readType 0：身份证
     * @param listener 身份证读卡回调，回调详细说明如下：
     *                 读卡结果数据 JSON格式toString
     *                 fullName 姓名
     *                 identityCardNumber 证件号
     *                 gender 性别
     *                 photo 照片数据(Base64编码)
     *                 nation 民族
     *                 birthday 出生日期(yyyyMMdd)
     *                 address 地址
     *                 organization ：签发机关
     *                 effectiveDate: 生效时间(yyyyMMdd)
     *                 expDate 失效时间(yyyyMMdd、长期)
     * @param timeout 超时时间，单位:毫秒
     * @param prompt true:有提示音和动画 false: 无提示音无动画
     */
    void idCardReader(int readType, IDCardReaderListener listener, int timeout, boolean prompt);
}
